package Base;

import java.util.ArrayList;
import java.util.List;

public class Pergunta 
{
    private int id;
    private int idTema;
    private String pergunta;
    private byte[] imagem;
    private String comentario;
    private String link;
    private List<Resposta> respostas;
    private boolean respondida;
    private boolean acertou;
    private int totLin;

    public Pergunta(int id, int idTema, String pergunta, byte[] imagem, String comentario, String link) {
        this.id = id;
        this.idTema = idTema;
        this.pergunta = pergunta;
        this.imagem = imagem;
        this.comentario = comentario;
        this.link = link;
        this.respostas = new ArrayList<>();
        this.respondida = false;
        this.totLin = 0;
    }

    public boolean isAcertou() {
        return acertou;
    }

    public void setAcertou(boolean acertou) {
        this.acertou = acertou;
    }
    
    public String getHtml(){
        totLin = 0;
        String retorno = "<html> <font color=red>";
        String ret="";
        retorno += montarHtml(pergunta);
        ret += "<font color=black> ";
        ret += "A) "+montarHtml(respostas.get(0).getDescricao());
        ret += "B) "+montarHtml(respostas.get(1).getDescricao());
        ret += "C) "+montarHtml(respostas.get(2).getDescricao());
        ret += "D) "+montarHtml(respostas.get(3).getDescricao());
        
        if(totLin < 12){
            retorno +="<br>"+ret;
            for(int i=totLin; i<11;i++){
                retorno+="<br>";
            }
        }
        retorno += "</html> ";
        return retorno;
    }
    
    private String montarHtml(String entrada){
        String [] palavra = entrada.split(" ");
        ArrayList<String> linhas = new ArrayList();
        int soma = 0;
        String adicionar="";
        for(int i=0; i<palavra.length;i++){
            if(adicionar.length()+palavra[i].length() == 120){
                adicionar += palavra[i]+" ";
                linhas.add(adicionar);
                adicionar="";
            }else if(adicionar.length()+palavra[i].length()> 120){
                linhas.add(adicionar);
                adicionar=palavra[i]+" ";
                if(i == palavra.length-1){
                    linhas.add(adicionar);
                }
            }else if(i == palavra.length-1){
                adicionar += palavra[i]+" ";
                for(int j=adicionar.length(); j<125; j++){
                    adicionar+="&nbsp";
                }
                linhas.add(adicionar);
            }
            else{
                adicionar+=palavra[i]+" ";
            }            
        }
        
        totLin += linhas.size();
        
        String retorno="";
        for(String a: linhas){
            retorno += a + "<br>";
        }
        
        return retorno;
        
    }
    

    public boolean isRespondida() {
        return respondida;
    }

    public void setRespondida(boolean respondida) {
        this.respondida = respondida;
    }
        
    public void setRespostas(List<Resposta> respostas) {
        this.respostas = respostas;
    }

    public List<Resposta> getRespostas() {
        return respostas;
    }
    

    public String getComentario() {
        return comentario;
    }

    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getIdTema() {
        return idTema;
    }

    public void setIdTema(int idTema) {
        this.idTema = idTema;
    }

    public byte[] getImagem() {
        return imagem;
    }

    public void setImagem(byte[] imagem) {
        this.imagem = imagem;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getPergunta() {
        return pergunta;
    }

    public void setPergunta(String pergunta) {
        this.pergunta = pergunta;
    }
    
    public String toString(){
        return pergunta;
    }
    
    public String toImagem(){
        if(imagem==null)
            return "Não há imagem para esta pergunta";
        return "Imagem armazenada";
    }
    
    
}
